#ifndef LUGAR_H_
#define LUGAR_H_

#include <string>
#include <vector>
#include "Utilizador.h"

class Lugar {
	friend std::ostream& operator<<(std::ostream& output, const Lugar& utilizador);
private:
	virtual void imprimir(std::ostream& ostr) const;

protected:
	std::string nome;
	std::vector<Utilizador*> amigos;

	void imprimir_amigos(std::ostream& ostr) const;
public:
	Lugar();
	Lugar(const std::string nome);
	virtual ~Lugar();

	std::string get_nome() const;
	std::vector<Utilizador*> get_utilizadores() const;
	int get_numero_amigos() const;
	void adicionar_amigo(Utilizador* amigo);
	void remover_amigo(Utilizador* amigo);

	virtual const Lugar& operator =(const Lugar& lugar);
	bool operator ==(const Lugar& lugar) const;
	bool operator >(const Lugar& lugar) const;

};

#endif /* LUGAR_H_ */
